
#ifndef PL_H_
#define PL_H_

#include <cplex.h>//solver escolhido
#include "graphMacros.h"
#include "bitMapGraph.h"
#include "vertexOrders.h"

/*Definição do problema e interação com o solver*/

/*Inicia o ambiente e seta as variaveis*/
int initPL();

/*Adiciona no ambiente env e no problema prob as restrições de conjunto
 * independente referentes ao vertice va[v]*/
int addConstrainsForVertex(long v, CPXENVptr* env, CPXLPptr* prob);

/*Resolve no ambiente env o problema prob referente ao vertice va[v]*/
double solve(CPXENVptr env, CPXLPptr prob, long v);

/*Recupera no ambiente env e no problema prob a solução referente ao vertice va[v]*/
int getX(CPXENVptr env, CPXLPptr prob, double* y, long v);

/*Modifica no ambiente env e no problema prob a função objetivo referente ao vertice va[v]*/
int changeObj(CPXENVptr env, CPXLPptr prob, double* coef, long v);

/*Verifica se algum erro ocorreu*/
int getErro(int status, CPXENVptr env);
#endif /* PL_H_ */
